MemQ: An Efficient, Scalable Cloud Native PubSub System

1,506
Pinterest
Pinterest is a social bookmarking site where users collect and share photos of their favorite events, interests and hobbies. One of the fastest growing social networks online, Pinterest is the third-largest such network behind only Facebook and Twitter.

By Ambud Sharma | Tech Lead and Engineering Manager, Logging Platform


The Logging Platform powers all data ingestion and transportation at Pinterest. At the heart of the Pinterest Logging Platform are Distributed PubSub systems that help our customers transport / buffer data and consume asynchronously.

In this blog we introduce MemQ (pronounced mem — queue), an efficient, scalable PubSub system developed for the cloud at Pinterest that has been powering Near Real-Time data transportation use cases for us since mid-2020 and complements Kafka while being up to 90% more cost efficient.

History

For nearly a decade, Pinterest has relied on Apache Kafka as the sole PubSub system. As Pinterest grew, so did the amount of data and the challenges around operating a very large scale distributed PubSub platform. Operating Apache Kafka at Scale gave us a great deal of insight on how to build a scalable PubSub system. Upon deep investigation of the operational and scalability challenges of our PubSub environment, we arrived at the following key takeaways:

  1. Not every dataset needs sub-second latency service, latency and cost should be inversely proportional (lower latency should cost more)
  2. Storage and Serving components of a PubSub system need to be separated to enable independent scalability based on resources.
  3. Ordering on read instead of write provides required flexibility for specific consumer use cases (different applications can have different for same dataset)
  4. Strict partition ordering is not necessary at Pinterest in most cases and often leads to scalability challenges.
  5. Rebalancing in Kafka is expensive, often results in performance degradation, and has a negative impact for customers on a saturated cluster.
  6. Running custom replication in a cloud environment is expensive.

In 2018, we experimented with a new type of PubSub system that would natively leverage the cloud. In 2019, we started formally exploring options on how to solve our PubSub scalability challenges and evaluated multiple PubSub technologies based on cost of operations as well as reengineering cost for existing technologies to meet the demands of Pinterest. We finally landed at the conclusion that we needed a PubSub technology that built on the learnings of Apache Kafka, Apache Pulsar, and Facebook LogDevice, and was built for the cloud.

MemQ is a new PubSub system that augments Kafka at Pinterest. It uses a decoupled storage and serving architecture similar to Apache Pulsar and Facebook Logdevice; however, it relies on a pluggable replicated storage layer i.e. Object Store / DFS / NFS for storing data. The net result is a PubSub system that:

  • Handles GB/s traffic
  • Independently scales, writes, and reads
  • Doesn’t require expensive rebalancing to handle traffic growth
  • Is 90% more cost effective than our Kafka footprint

Secret Sauce

The secret of MemQ is that it leverages micro-batching and immutable writes to create an architecture where the number of Input/output Operations Per Second (IOPS) necessary on the storage layer are dramatically reduced, allowing the cost effective use of a cloud native Object Store like Amazon S3. This approach is analogous to packet switching for networks (vs circuit switching, i.e. single large continuous storage of data such as kafka partition).

MemQ breaks the continuous stream of logs into blocks (objects), similar to ledgers in Pulsar but different in that they are written as objects and are immutable. The size of these “packets” / “objects,” known internally in MemQ as a Batch, play a role in determining the End-to-End (E2E) latency. The smaller the packets, the faster they can be written at the cost of more IOPS. MemQ therefore allows tunable E2E latency at the cost of higher IOPs. A key performance benefit of this architecture is enabling separation of read and write hardware dependending on the underlying storage layer, allowing writes and reads to scale independently as packets that can be spread across the storage layer.

This also eliminated the constraints experienced in Kafka where in order to recover a replica, a partition must be re-replicated from the beginning. In the case of MemQ, the underlying replicated storage only needs to recover the specific Batch whose replica counts were reduced due to faults in case of storage failures. However, since MemQ at Pinterest runs on Amazon S3, the recovery, sharding, and scaling of storage is handled by AWS without any manual intervention from Pinterest.

Components of MemQ

Client

MemQ client discovers the cluster using a seed node and then connects to the seed node to discover metadata and the Brokers hosting the TopicProcessors for a given Topic or, in case of the consumer, the address of the notification queue.

Broker

Similar to other PubSub systems, MemQ has the concept of a Broker. A MemQ Broker is a part of the cluster and is primarily responsible for handling metadata and write requests.

Note: read requests in MemQ can be handled directly by the Storage layer unless the read Brokers are used

Cluster Governor

The Governor is a leader in the MemQ cluster and is responsible for automated rebalancing and TopicProcessor assignments. Any Broker in the cluster can be elected a Governor, and it communicates with Brokers using Zookeeper, which is also used for Governor election.

The Governor makes assignment decisions using a pluggable assignment algorithm. The default one evaluates available capacity on a Broker to make allocation decisions. Governor also uses this capability to handle Broker failures and restore capacity for topics.

Topic & TopicProcessor

MemQ, similar to other PubSub systems, uses the logical concept of Topic. MemQ topics on a Broker are handled by a module called TopicProcessor. A Broker can host one or more TopicProcessors, where each TopicProcessor instance handles one topic. Topics have write and read partitions. The write partitions are used to create TopicProcessors (1:1 relation), and the read partitions are used to determine the level of parallelism needed by the consumer to process the data. The read partition count is equal to the number of partitions of the notification queue.

Storage

MemQ storage is made of two parts:

  1. Replicated Storage (Object Store / DFS)
  2. Notification Queue (Kafka, Pulsar, etc.)

1. Replicated Storage

MemQ allows for pluggable storage handlers. At present, we have implemented a storage handler for Amazon S3. Amazon S3 offers a cost effective solution for fault-tolerant, on-demand storage. The following prefix format on S3 is used by MemQ to create the high throughput and scalable storage layer:

s3://<bucketname>/<(a) 2 byte hash of first client request id in batch>/<(b) cluster>/topics/<topicname>

(a) = used for partitioning inside S3 to handle higher request rates if needed

(b) = name of MemQ cluster

Availability & Fault Tolerance

Since S3 is a highly available web scale object store, MemQ relies on its availability as the first line of defense. To accommodate for future S3 re-partitioning, MemQ adds a two-digit hex hash at the first level of prefix, creating 256 base prefixes that can, in theory, be handled by independent S3 partitions just to make it future proof.

Consistency

The consistency of the underlying storage layer determines the consistency characteristics of MemQ. In case of S3, every write (PUT) to S3 Standard is guaranteed to be replicated to at least three Availability Zones (AZs) before being acknowledged.

2. Notification Queue

The notification system is used by MemQ for delivering pointers to the consumer for the location of data. Currently, we use an external notification queue in the form of Kafka. Once data is written to the storage layer, the Storage handler generates a notification message recording the attributes of the write including its location, size, topic, etc. This information is used by the consumer to retrieve data (Batch) from the Storage layer. It’s also possible to enable MemQ Brokers to proxy Batches for consumers at the expense of efficiency. The notification queue also provides clustering / load balancing for the consumers.

MemQ Data Format

MemQ uses a custom storage / network transmission format for Messages and Batches.

The lowest unit of transmission in MemQ is called a LogMessage. This is similar to a Pulsar Message or Kafka ProducerRecord.

The wrappers on the LogMessage allow for the different levels of batching the MemQ does. Hierarchy of units:

  1. Batch (unit of persistence)
  2. Message (unit of producer upload)
  3. LogMessage (unit application interactions with)

Producing Data

A MemQ producer is responsible for sending data to Brokers. It uses an async dispatch model allowing for non-blocking sends to happen without the need to wait on acknowledgements.

This model was critical in order to hide the upload latencies for the underlying storage layers while maintaining storage level acknowledgements. This leads to the implementation of a custom MemQ protocol and client, as we couldn’t use existing PubSub protocols, which relied on synchronous acknowledgements. MemQ supports three types of acks: ack=0 (producer fire & forget), ack=1 (Broker received), and ack=all (storage received). With ack=all, the replication factor (RF) is determined by the underlying storage layer (e.g. in S3 Standard RF=3 [across three AZs]). In case acknowledgement fails, the MemQ producers can explicitly or implicitly trigger retries.

Storing Data

The MemQ Topic Processor is conceptually a RingBuffer. This virtual ring is subdivided into Batches, which allows simplified writes. Messages are enqueued into the currently available Batch as they arrive over the network until either the Batch is filled or a time-based trigger happens. Once a Batch is finalized, it is handed to the StorageHandler for upload to the Storage layer (like S3). If the upload is successful, a notification is sent via the Notification Queue along with the acknowledgements (ack) for the individual Messages in the Batch to their respective Producers using the AckHandler if the producers requested acks.

Consuming Data

MemQ consumer allows applications to read data from MemQ. The consumer uses the Broker metadata APIs to discover pointers to the Notification Queue. We expose a poll-based interface to the application where each poll request returns an Iterator of LogMessages to allow reading all LogMessages in a Batch. These Batches are discovered using the Notification Queue and retrieved directly from the Storage layer.

Other Features

Data Loss Detection: Migrating workloads from Kafka to MemQ required strict validation on data loss. As a result, MemQ has a built in auditing system that enables efficiently tracking E2E delivery of each Message and publishing metrics in near real-time.

Batch & Streaming Unification: Since MemQ uses an externalized storage system, it enables the opportunity to provide support for running direct batch processing on raw MemQ data without needing to transform it to other formats. This allows users to perform ad hoc inspection on MemQ without major concerns around seek performance as long as the storage layer can separately scale reads and writes. Depending on the storage engine, MemQ consumers can perform concurrent fetches to enable much faster backfills for certain streaming cases.

Performance

Latency

MemQ supports both size and time-based flushes to the storage layer, enabling a hard limit on max tail latencies in addition to several optimizations to curb the jitter. So far we are able to achieve a p99 E2E latency of 30s with AWS S3 Storage and are actively working on improving MemQ latencies, which increases the number of use cases that can be migrated from Kafka to MemQ.

Cost

MemQ on S3 Standard has proven to be up to 90% cheaper (avg ~80%) than an equivalent Kafka deployment with three replicas across three AZs using i3 instances. These savings come from several factors like:

  • reduction in IOPS

  • removal of ordering constraints

  • decoupling of compute and storage

  • reduced replication cost due to elimination of compute hardware

  • relaxation of latency constraints

Scalability

MemQ with S3 scales on-demand depending on write and read throughput requirements. The MemQ Governor performs real-time rebalancing to ensure sufficient write capacity is available as long as compute can be provisioned. The Brokers scale linearly by adding additional Brokers and updating traffic capacity requirements. The read partitions are manually updated if the consumer requires additional parallelism to process the data.

At Pinterest, we run MemQ directly on EC2 and scale clusters depending on traffic and new use case requirements.

Future Work

We are actively working on the following areas:

  • Reducing E2E latencies (<5s) for MemQ to power more use cases

  • Enabling native integrations with Streaming & Batch systems

  • Key ordering on read

Conclusion

MemQ provides a flexible, low cost, cloud native approach to PubSub. MemQ today powers collection and transport of all ML training data at Pinterest. We are actively researching expanding it to other datasets and further optimizing latencies. In addition to solving PubSub, MemQ storage can expose the ability to use PubSub data for batch processing without major performance impacts enabling low latency batch processing.

Stay tuned for additional blogs about how we optimized MemQ internals to handle scalability challenges and the open source release of MemQ.

Acknowledgements

Building MemQ would not have been possible without the unwavering support of Dave Burgess and Chunyan Wang. Also a huge thanks to Ping-Min Lin who has been a key driver of bug fixes and performance optimizations in MemQ that enabled large scale production rollout.

Lastly thanks to Saurabh Joshi, Se Won Jang, Chen Chen, Divye Kapoor, Yiran Zhao, Shu Zhang and the Logging team for enabling MemQ rollouts.

Pinterest
Pinterest is a social bookmarking site where users collect and share photos of their favorite events, interests and hobbies. One of the fastest growing social networks online, Pinterest is the third-largest such network behind only Facebook and Twitter.
Tools mentioned in article
Open jobs at Pinterest
Full Stack Engineer - Identity
San Francisco, CA, US; , CA, US
<div class="content-intro"><p><strong>About Pinterest</strong><span style="font-weight: 400;">:&nbsp;&nbsp;</span></p> <p>Millions of people across the world come to Pinterest to find new ideas every day. It’s where they get inspiration, dream about new possibilities and plan for what matters most. Our mission is to help those people find their inspiration and create a life they love.&nbsp;In your role, you’ll be challenged to take on work that upholds this mission and pushes Pinterest forward. You’ll grow as a person and leader in your field, all the while helping&nbsp;Pinners&nbsp;make their lives better in the positive corner of the internet.</p> <p><em>Our new progressive work model is called PinFlex, a term that’s uniquely Pinterest to describe our flexible approach to living and working. Visit our </em><a href="https://www.pinterestcareers.com/pinflex/" target="_blank"><em><u>PinFlex</u></em></a><em> landing page to learn more.&nbsp;</em></p></div><p><span style="font-weight: 400;">We are looking for a Fullstack Engineer to join the Identity &amp; Compliance team, with a focus on product privacy, authentication and identity data management, to help us build the application that allows everyone to seamlessly and securely access Pinterest. You will specialize in building elegant product features with cutting-edge technology.</span></p> <p><strong>What you’ll do:</strong></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Build out end-to-end features to protect user privacy and ensure privacy compliance&nbsp; such as minor safety features, blocking functionality</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Build out end-to-end features for Identity products </span><span style="font-weight: 400;">to make things easy, seamless, and secure for our pinners</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Knit across teams by collaborating with product managers and designers and other functions to build a holistic experience that’s right for all pinners, creators, merchants and advertisers</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Contribute to each step of the product development process, from ideation to implementation to release; from rapidly prototyping, running A/B tests, to architecting and building solutions that can scale to support millions of users</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Analyze and visualize data to drive product insights and to inform our decisions</span></li> </ul> <p><strong>What we’re looking for:</strong></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">3+ years of full stack application development experience</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Proficiency in a dynamic programming language such as Javascript or Python</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Strong collaboration and communication skills</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience partnering with designers to implement design</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience with A/B experiments and data analysis</span></li> </ul> <p><strong>US Applicants:</strong></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">The minimum and maximum salary for this position is $155,300 to $258,700 in the US;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">This position is eligible for equity; and</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Information regarding the culture at Pinterest and benefits available for this position can be found at </span><a href="https://www.pinterestcareers.com/pinterest-life/"><span style="font-weight: 400;">https://www.pinterestcareers.com/pinterest-life/</span></a><span style="font-weight: 400;">.</span></li> </ul> <p><em><span style="font-weight: 400;">* This compensation and benefits information is based on Pinterest’s good faith estimate as of the date of publication and may be modified in the future. The level of pay within the range will depend on a variety of job-related factors that may include location, travel, shift requirements, relevant prior experience and/or education, or particular skills and expertise.</span></em></p> <p><span style="font-weight: 400;">#LI-REMOTE</span></p> <p><span data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;#LI-KK6&quot;}" data-sheets-userformat="{&quot;2&quot;:8705,&quot;3&quot;:{&quot;1&quot;:0},&quot;12&quot;:0,&quot;16&quot;:12}">#LI-KK6</span></p> <p>&nbsp;</p><div class="content-conclusion"><p><strong>Our Commitment to Diversity:</strong></p> <p>At Pinterest, our mission is to bring everyone the inspiration to create a life they love—and that includes our employees. We’re taking on the most exciting challenges of our working lives, and we succeed with a team that represents an inclusive and diverse set of identities and backgrounds.</p></div>
IT Enterprise Architect
San Francisco, CA, US; , CA, US
<div class="content-intro"><p><strong>About Pinterest</strong><span style="font-weight: 400;">:&nbsp;&nbsp;</span></p> <p>Millions of people across the world come to Pinterest to find new ideas every day. It’s where they get inspiration, dream about new possibilities and plan for what matters most. Our mission is to help those people find their inspiration and create a life they love.&nbsp;In your role, you’ll be challenged to take on work that upholds this mission and pushes Pinterest forward. You’ll grow as a person and leader in your field, all the while helping&nbsp;Pinners&nbsp;make their lives better in the positive corner of the internet.</p> <p><em>Our new progressive work model is called PinFlex, a term that’s uniquely Pinterest to describe our flexible approach to living and working. Visit our </em><a href="https://www.pinterestcareers.com/pinflex/" target="_blank"><em><u>PinFlex</u></em></a><em> landing page to learn more.&nbsp;</em></p></div><p>&nbsp;</p> <p><span style="font-weight: 400;">The IT Enterprise Architect will provide digital thought leadership for Pinterest’s IT organization. This individual will be the authoritative expert for business systems supporting Finance, HR, Sales, Marketing, Learning and Employee Enablement solutions. You will have a collaborative nature that facilitates strong partnering with Pinterest business units, particularly with the Engineering org. The IT Enterprise Architect will have a vast knowledge of and experience delivering technical capabilities across multiple technologies/platforms - you’ve walked a mile in the shoes of other technologists. You will use your vast knowledge and experience to drive excellence through standards in agile delivery practices. You will indirectly lead teams of technologists to advance Pinterest’s solutions delivery roadmap, providing guidance and oversight. You will solve complex technical challenges by rolling up your sleeves and taking part in the delivery, always focusing on the end user experience.&nbsp; You will partner with the IT leadership community to communicate the solutions and roadmap to business stakeholders. In short, you are an inspiring leader with an insatiable need to learn and grow, and an engineer at heart.</span></p> <p>&nbsp;</p> <p><strong>What you’ll do:</strong></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Evaluate projects from a technical perspective, ensuring alignment with business needs, IT roadmap, architecture and security standards, internal controls, and IT methodology</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Ensure solution designs and implementation meet architecture quality standards</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Ensure solutions improve overall information flow, reduce cost of service whenever possible, and do not duplicate existing functionality or diverge from business and IT strategies. Your focus will be on delivering high quality solutions and high reuse of solutions</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Foster innovation and implement creative out-of-the-box ideas by conducting brainstorming sessions, hackathons and other innovation events and elevate the thinking of Pinterest’s technologists</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Be the champion for a security-first mindset and elevate the overall security competency within IT</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Assist in the development of policies, standards, and guidelines that direct the selection, development, implementation, and use of Information Technology within the enterprise</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Guide Solutions Architects / Tech Leads to ensure that application and integration architecture aligns with system design guidelines and enterprise architecture standards.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Participate in business, data, application and infrastructure planning, providing insight into the future of the technology footprint within the assigned functional area</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Evaluate new technologies and create proposals for their adoption based on business goals, investments, benefits and risks</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Coach, mentor and guide solution delivery and operations teams to effectively leverage the technology footprint</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Build and maintain effective working relationships with business stakeholders as well as technical leaders within IT and other engineers throughout the organization (product engineering, data platforms, etc.)</span></li> </ul> <p>&nbsp;</p> <p><strong>What we’re looking for:</strong></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">10+ years of experience in IT and stakeholder relationship management</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">7+ years of experience leading organizations through major change initiatives</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">10+ years product management and engineering experience utilizing agile development methodologies</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Track record of successfully establishing and implementing transformation programs in an Agile and DevOps environment</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Demonstrated knowledge of SaaS, infrastructure, and cloud computing architectures</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Demonstrated knowledge of data security and compliance controls</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience designing/engineering Identity Access Management solutions a plus</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Demonstrated knowledge of advanced automation (bots, AI, low-code platforms)</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Ability to respond effective to ambiguity and change, and keeps teams and strategic initiatives moving forward even when things are not certain or the path forward is not clear</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Track record of evaluating plans to identify risk, ensure alignment of goals, plans, and priorities across teams and functions, and meet commitments; ability to create clarity about what success looks like and inspire velocity in self and others to achieve results that accelerate functional impact</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Capable of stepping up to address difficult issues and saying what needs to be said</span></li> </ul> <p>&nbsp;</p> <p><strong>Colorado based applicants only:</strong></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">The minimum and maximum salary for this position is $222,300 to $344,500 in Colorado;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">This position is eligible for equity; and</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Information regarding the culture at Pinterest and benefits available for this position can be found at </span><a href="https://www.pinterestcareers.com/pinterest-life/"><span style="font-weight: 400;">https://www.pinterestcareers.com/pinterest-life/</span></a><span style="font-weight: 400;">.</span></li> </ul> <p><em><span style="font-weight: 400;">* This compensation and benefits information is based on Pinterest’s good faith estimate as of the date of publication and may be modified in the future. The level of pay within the range will depend on a variety of job-related factors that may include location, travel, shift requirements, relevant prior experience and/or education, or particular skills and expertise.</span></em></p> <p>&nbsp;</p> <p><span style="font-weight: 400;">#LI-REMOTE</span></p> <p><span style="font-weight: 400;">#LI-AJ2</span></p><div class="content-conclusion"><p><strong>Our Commitment to Diversity:</strong></p> <p>At Pinterest, our mission is to bring everyone the inspiration to create a life they love—and that includes our employees. We’re taking on the most exciting challenges of our working lives, and we succeed with a team that represents an inclusive and diverse set of identities and backgrounds.</p></div>
Machine Learning Engineer, Core Engin...
San Francisco, CA, US; , CA, US
<div class="content-intro"><p><strong>About Pinterest</strong><span style="font-weight: 400;">:&nbsp;&nbsp;</span></p> <p>Millions of people across the world come to Pinterest to find new ideas every day. It’s where they get inspiration, dream about new possibilities and plan for what matters most. Our mission is to help those people find their inspiration and create a life they love.&nbsp;In your role, you’ll be challenged to take on work that upholds this mission and pushes Pinterest forward. You’ll grow as a person and leader in your field, all the while helping&nbsp;Pinners&nbsp;make their lives better in the positive corner of the internet.</p> <p><em>Our new progressive work model is called PinFlex, a term that’s uniquely Pinterest to describe our flexible approach to living and working. Visit our </em><a href="https://www.pinterestcareers.com/pinflex/" target="_blank"><em><u>PinFlex</u></em></a><em> landing page to learn more.&nbsp;</em></p></div><p><span style="font-weight: 400;">With more than 400 million users around the world and 300 billion ideas saved, Pinterest Machine Learning engineers build personalized experiences to help Pinners create a life they love. With just over 3,000 global employees, our teams are small, mighty, and still growing. At Pinterest, you’ll experience hands-on access to an incredible vault of data and contribute large-scale recommendation systems in ways you won’t find anywhere else.</span></p> <p><strong>What you’ll do:</strong></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Build cutting edge technology using the latest advances in deep learning and machine learning to personalize Pinterest</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Partner closely with teams across Pinterest to experiment and improve ML models for various product surfaces (Homefeed, Ads, Growth, Shopping, and Search), while gaining knowledge of how ML works in different areas</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Use data driven methods and leverage the unique properties of our data to improve candidates retrieval</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Work in a high-impact environment with quick experimentation and product launches</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Keeping up with industry trends in recommendation systems&nbsp;</span></li> </ul> <p><strong>What we’re looking for:</strong></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">2+ years of industry experience applying machine learning methods (e.g., user modeling, personalization, recommender systems, search, ranking, natural language processing, reinforcement learning, and graph representation learning)</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">End-to-end hands-on experience with building data processing pipelines, large scale machine learning systems, and big data technologies (e.g., Hadoop/Spark)</span></li> <li><strong>Nice to have:</strong> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">M.S. or PhD in Machine Learning or related areas</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Publications at top ML conferences</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Expertise in scalable realtime systems that process stream data</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Passion for applied ML and the Pinterest product</span></li> </ul> </li> </ul> <p>&nbsp;</p> <p><span style="font-weight: 400;">#LI-HYBRID<br>#LI-LA1</span></p><div class="content-conclusion"><p><strong>Our Commitment to Diversity:</strong></p> <p>At Pinterest, our mission is to bring everyone the inspiration to create a life they love—and that includes our employees. We’re taking on the most exciting challenges of our working lives, and we succeed with a team that represents an inclusive and diverse set of identities and backgrounds.</p></div>
Salesforce BSA, IT Sales Systems (Con...
San Francisco, CA, US; , CA, US
<div class="content-intro"><p><strong>About Pinterest</strong><span style="font-weight: 400;">:&nbsp;&nbsp;</span></p> <p>Millions of people across the world come to Pinterest to find new ideas every day. It’s where they get inspiration, dream about new possibilities and plan for what matters most. Our mission is to help those people find their inspiration and create a life they love.&nbsp;In your role, you’ll be challenged to take on work that upholds this mission and pushes Pinterest forward. You’ll grow as a person and leader in your field, all the while helping&nbsp;Pinners&nbsp;make their lives better in the positive corner of the internet.</p> <p><em>Our new progressive work model is called PinFlex, a term that’s uniquely Pinterest to describe our flexible approach to living and working. Visit our </em><a href="https://www.pinterestcareers.com/pinflex/" target="_blank"><em><u>PinFlex</u></em></a><em> landing page to learn more.&nbsp;</em></p></div><p>Do you like using your skills to improve internal business tools? Pinterest is looking for a Business Systems Analyst (BSA) to help accelerate the use of technology on our Salesforce implementation. You will work with a fast-paced team of engineers, portfolio leads, and business partners where you will continue to develop your skills while helping ensure that Pinterest has an effective and scalable platform for our business-critical departments. This role will have a direct influence on the company by helping drive productivity, efficiency and insights on behalf of our Sales organization.&nbsp; You will provide valuable contribution as a bridge between Sales teams and IT delivery.&nbsp; You should be able to utilize your time by testing key features &amp; functionality before they are production ready. This is an exciting opportunity to join a collaborative, inclusive team that manages a growing Salesforce implementation.</p> <p><strong>What you'll do:</strong></p> <ul> <li>Provide strong analytical, problem solving, and technical skills to effectively collect requirements, identify alternatives, and design and deploy quality solutions.</li> <li>Own functional tasks and deliverables, including: process definition and reengineering, high and detailed-level requirements gathering, functional design, testing, and continuous improvement of business applications.</li> <li>Collaborate with business stakeholders to gather requirements, deliver solutions with engineers, conduct Quality Assurance Testing (QA), facilitate User Acceptance Testing (UAT), and provide post-production support.</li> <li>Use and recommend best practices while delivering scalable high quality solutions.</li> <li>Perform Salesforce configurations and guide developers on advanced customization.</li> </ul> <section class="skills-section"> <p><strong>What we're looking for:</strong></p> <ul> <li>3+ years of hands-on work as a SFDC Admin and have Business Systems Analyst experience.</li> <li>5+ years of professional work experience.</li> <li>You consider yourself detail-oriented, organized, self-motivated, hard working, and a great team player with excellent interpersonal skills.</li> <li>You have strong written/verbal communication skills and can translate business requirements and engage directly with business stakeholders.</li> <li>You have extensive experience analyzing, designing, configuring and supporting Salesforce implementations.</li> <li>You are a certified SalesforceAdministrator and you have experience with Sales Cloud, Service Cloud, and SFDC Lightning framework.</li> <li>You can manage and implement advanced configurations such as custom objects, fields, formulas, validation rules, and workflow rules.</li> <li>You have experience with SFDC data management tools, SOQL queries, Microsoft Excel, JIRA, Visual Diagrams, and Google Suite.</li> <li>Preferred, but not required: You have experience with sales processes and tools ideally in the advertising/media/e-commerce industries.</li> </ul> <p class="p2"><span class="s1"><strong>More about contract roles at Pinterest:</strong></span></p> <ul class="ul1"> <li class="li3"><span class="s1">This is a temporary contract position at Pinterest. As such, the contractor who fills this role will be employed either by our staffing partner (PRO Unlimited) or by an agency supplier partner, and not an employee of Pinterest.</span></li> <li class="li3"><span class="s1">All interviews will be scheduled and/or conducted by the Pinterest assignment manager. When a finalist has been selected, PRO Unlimited or the agency supplier partner will extend the offer and provide assignment details including duration, benefits options and onboarding details.</span></li> <li class="li1"><span class="s1">The estimated salary range for this contract position is $88 - $108/hour based on experience and location. To learn more about the benefits offered to contractors through Pro Unlimited please visit: <a href="http://www.hrconnection.com/"><span class="s3">www.hrconnection.com</span></a>&nbsp;(username: generalinformation)</span></li> </ul> <p><span class="s1">#LI-REMOTE</span></p> </section><div class="content-conclusion"><p><strong>Our Commitment to Diversity:</strong></p> <p>At Pinterest, our mission is to bring everyone the inspiration to create a life they love—and that includes our employees. We’re taking on the most exciting challenges of our working lives, and we succeed with a team that represents an inclusive and diverse set of identities and backgrounds.</p></div>
Verified by
Software Engineer
Sourcer
Software Engineer
Talent Brand Manager
Tech Lead, Big Data Platform
Security Software Engineer
You may also like