Pinterest Engineering
medium.com/pinterest-engineering · Company blog · on HN since 2018
Pinterest's engineers write about infrastructure and data work, including databases, Kubernetes, build systems, search, and text-to-SQL.
What HN saysHN commenters link it for concrete engineering examples, including the RocksDB wide column database, HBase to TiDB migration, and visual search work.
95HN people shared it
22linked it in comments
107stories submitted
1.0Kstory points
3 months agolast shared
2018people per year2026
Most-shared posts
- 1A one-line change decreased our build times by 99%4 people · 467 points · first shared 2020 · 243 comments on HN
- 2We Built Text-to-SQL at Pinterest4 people · 13 points · first shared 2024 · 1 comments on HN
- 3Demystifying SEO with Experiments at Pinterest (2015)4 people · 3 points · first shared 2020 · discussion on HN
- 4Building Pinterest's new wide column database using RocksDB3 people · 14 points · first shared 2024 · 1 comments on HN
- 5Scaling Kubernetes with Assurance at Pinterest3 people · 11 points · first shared 2021 · discussion on HN
- 6The Dead Code Society3 people · 9 points · first shared 2019 · 1 comments on HN
- 7Scaling Cache Infrastructure at Pinterest3 people · 8 points · first shared 2020 · discussion on HN
- 8Online Data Migration from HBase to TiDB with Zero Downtime3 people · 8 points · first shared 2022 · discussion on HN
- 9Open sourcing Querybook, Pinterest’s collaborative big data hub3 people · 4 points · first shared 2021 · discussion on HN
- 10Finding zombies in our systems: A real-world story of CPU bottlenecks3 people · 4 points · first shared 2026 · discussion on HN
- 11PinalyticsDB: A Time Series Database on Top of Hbase3 people · 3 points · first shared 2019 · discussion on HN
- 12Improving distributed caching performance and efficiency at Pinterest2 people · 47 points · first shared 2022 · 23 comments on HN
- 13Lessons from debugging a tricky direct memory leak2 people · 31 points · first shared 2023 · 9 comments on HN
- 14Advancements in embedding-based retrieval at Pinterest Homefeed2 people · 20 points · first shared 2025 · 2 comments on HN
- 15The Quest to Understand Metric Movements2 people · 6 points · first shared 2025 · discussion on HN
What HN people wrote when they linked it
ecesena · 2026-08-04
Nice. This is relatively old work (2020) but Pinterest had/has skin tone features, for example if you're searching for cosmetic products. Worth a check if anything might be useful for your work.
https://medium.com/pinterest-engineering/powering-inclusive-search-rec…
dk8996 · 2020-04-21
I'm kinda late to this conversation but there are companies and Engineers trying to solve this problem basically adding more "semantics" to visual content. Good place to start is with this blog from Pinterest.
https://medium.com/pinterest-engineering/pinsage-a-new-graph-convoluti…
dmitriid · 2022-12-08
> Does that give access to the full history quickly?
It doesn't because no append-only log does. Apache Kafka is that "unique web3-only thing never seen before in traditional systems" that no only has been seen in traditional systems, but has been successfully used in those systems at scale dwarfing all of crypto, and has well-understood behaviours and patterns.
Edit: In 2019 Linkedin (who developed Kafka) were processing 7 trillion messages a day: https://engineering.linkedin.com/blog/2019/apache-kafka-trillion-messa…
Edit: In 2018 Pinterest was handling 15 million messages a day with 1.2 petabytes of data per day https://medium.com/pinterest-engineering/how-pinterest-runs-kafka-at-s…
A view of the final state of data is literally one of the things they require, and everyone knows how to make one.
> For those that don't want to do this, and want to quickly access just the latest state, that's exactly what services like this offer.
So this service just creates a "traditional" database with a "traditional" access method (actually an ancient access method, RPC) with a "traditional" ElasticSearch on top and pretends it's something new, never made at scale, and something no "traditional system" was ever prepared for.
Edit: see LinkedIn and Pinterest above. Or Facebook. Or Amazon. Or AliExpress. Or... "Omg they traditional web2 tech cannot work at the amazing scale of web3" is such a bold-faced lie that I can't imagine people who can look at it and say…
alexpadula · 2024-10-30
https://medium.com/pinterest-engineering/building-pinterests-new-wide-…
Here is a pretty nice article you could check out. Uses RocksDB but should be fairly similar to setup.
Cheers
esafak · 2024-05-15
Cost, complexity, and features like transactions and secondary index. For more see
https://static.pingcap.com/files/2023/07/19065834/BRO-Pinterest-Profil…
https://medium.com/pinterest-engineering/online-data-migration-from-hb…
https://www.youtube.com/watch?v=svi5AFi2_To
phantomathkg · 2024-02-14
Not OP, but apparently many companies still hosted their engineering blog on medium. So the answer to your question could be, yes and no, it depends.
Pinterest: https://medium.com/pinterest-engineering Workable: https://engineering.workable.com/ Skyscanner: https://medium.com/@SkyscannerEng Agoda: https://medium.com/@agoda.eng
rwultsch · 2023-12-23
A pin was a 1.2 KB json blob. There were other tables but pins was the big one. Why MySQL? It did not destroy data like the alternatives.
how storage became efficient https://medium.com/pinterest-engineering/evolving-mysql-compression-pa… https://medium.com/pinterest-engineering/evolving-mysql-compression-pa…
acdha · 2023-08-29
I think the question is whether they significantly changed the architecture at the same time. For example, reading the description of the Python migration sounds like they applied a lot of experience which would have benefited any language, and micro-optimizations like what you described would have been a rounding error on those larger changes:
https://medium.com/pinterest-engineering/fighting-spam-with-guardian-a…
tyingq · 2023-08-29
There's some actual detail on the Python -> Elixir move here:
https://medium.com/pinterest-engineering/fighting-spam-with-guardian-a…
In short, the Elixir is doing something completely different. And they are also not counting some new pieces like the database cluster and kafka based aggregators, etc.
natefox · 2022-09-27
Pinterest uses (used?) mysql. Blog post is a bit old but a fun read https://medium.com/pinterest-engineering/sharding-pinterest-how-we-sca…
rockwotj · 2021-04-04
My company uses bazel for Android development. We tried to use it for iOS but ran into issues with cocoapods.
Pinterest uses bazel for their iOS app: https://medium.com/pinterest-engineering/developing-fast-reliable-ios-…
gervwyk · 2021-03-31
Querybook's journey to open-source.
https://medium.com/pinterest-engineering/open-sourcing-querybook-pinte…
andrefuchs · 2021-02-22
The was a blog post by the Pinterest team about this.
https://medium.com/pinterest-engineering/demystifying-seo-with-experim…
hayksaakian · 2020-12-25
There's no intentional or manual effort at Google to promote pinterest.
Pinterest shows up because they understand how the Google algorithm works and built their website to display all the signals that Google looks for in relevant image content.
They understand user intent and generate URLs that present content in a way that google expects to see.
Examples of how they do this from their engineering team:
https://medium.com/pinterest-engineering/demystifying-seo-with-experim…
More:
https://medium.com/pinterest-engineering/tagged/seo
knuckleheads · 2020-12-25
One big reason why Pinterest ranks so highly, and why you are seeing different tld's in the results, is because they have a variety of tld's that they use and those tld's all have separate crawl budgets from each other. So Google crawls Pinterest about an order of magnitude more than most other sites. You can read more about this here: https://medium.com/pinterest-engineering/how-switching-our-domain-stru…
Source: I run a think tank focused on Google’s web crawling advantage and have been studying stuff like this for a couple years now.
idunno246 · 2020-09-21
I’ve had some bad luck with hbase for similar but not tried spark - it’s better optimized for writers than readers iirc. Pinterest[1] did an interesting thing where they worked directly on the hfiles. Everywhere I’ve worked I feel like I could pick any random data processing job that took more than a few minutes and get orders of magnitude improvement, there’s just so much inefficiency
[1]https://medium.com/pinterest-engineering/open-sourcing-terrapin-a-serv…
sharemywin · 2020-09-11
These two articles looked pretty interesting:
https://towardsdatascience.com/compressionvae-a-powerful-and-versatile…
https://medium.com/pinterest-engineering/detecting-image-similarity-us…
mansu1 · 2020-09-03
Author of the post here. I was the tech lead for Zipkin at Twitter, implemented tracing system at Pinterest[1] and a contributor to the Open tracing spec[2]. So, limited consideration of existing tools may not be too accurate of a description :).
A SpanEvent is a simpler span.
Regular Span - Annotations(nested structures) = SpanEvent.
Most developers don't think about using spans to represent DAGs in their applications. The goal of a SpanEvent is to aid developers to think in terms of DAGs.
In my experience, with some care and clever code, you can use existing Span formats. But, most developers give up and do something else instead.
[1] https://medium.com/pinterest-engineering/distributed-tracing-at-pinter…
[2] https://opentracing.io/specification/organization/
xg15 · 2020-07-01
Just mentioning that Pinterest used to boast on their engineering blog how they designed the non-dismissable nag-screen [1] and how they increased engagement by making their landing pages more confusing [2].
Not surprised they hack their way through search.
[1] https://medium.com/pinterest-engineering/lessons-in-growth-and-increas…
[2] https://medium.com/pinterest-engineering/lessons-in-growth-engineering…
petersjt014 · 2020-01-24
Yep.
The Financial Times:
https://github.com/Financial-Times/tapper
Discord:
https://blog.discordapp.com/using-rust-to-scale-elixir-for-11-million-…
Pintrest, who seems to really like it (note the highlighted comment):
https://medium.com/pinterest-engineering/introducing-new-open-source-t…
And looking on https://elixir-companies.com/en I see two in the UK, two in Brazil, Amsterdam, Ukraine, Canada...Plenty there.
manigandham · 2019-09-26
Time-series is definitely not synonymous column-oriented. The data model is separate from the storage layer which is separate from the use-case.
You're talking about relational databases (which is the formal type) designed for large-scale analytics using column-oriented storage and processing and supporting a time-series use-case.
Storage and querying just for time-series specifically is more about product features than the underlying type. For example, here's Pinterest doing the same on HBase: https://medium.com/pinterest-engineering/pinalyticsdb-a-time-series-da…
olds · 2020-09-02
Hi Jon,
I was a PM on Growth at Pinterest many, many moons ago (~2013-2014?) so it was cool to see your post and read through your observations on Growth at Pinterest. A couple points I might add that might be of interest to your readers would be that the biggest changes can be technically driven, and the biggest changes are sometimes the smallest. I was at Pinterest from 2013 - 2017 and iirc the two biggest experiments in terms of percentage user signups and retention were the conversion of unauth pages to react [1] and the change from "Pin" to "Save". They were both roughly equal magnitude in impact (again, iirc), and completely outsized all other growth experiments shipped in those respective years. Two very different projects, approached from very different angles, that ultimately lead to a faster, and more understandable, product.
[1] https://medium.com/pinterest-engineering/driving-user-growth-with-perf…