Zuckerberg: don’t over‑engineer MVPs
A social post highlights Mark Zuckerberg’s claim that Facebook was scaled without modern tools like Kubernetes, Redis or Kafka—used to argue against over‑engineering minimum viable products and to favour pragmatic, simple stacks. The anecdote is being circulated as a counterpoint to premature optimization in early‑stage systems. (x.com)
Meta’s engineering blog records that Facebook began using memcached in August 2005 after Mark Zuckerberg downloaded and installed it on Apache web servers to cut expensive database queries. (engineering.fb.com (engineering.fb.com)) The original site launched as TheFacebook on February 4, 2004 and was built on a LAMP stack (Linux, Apache, MySQL, PHP) before traffic forced a move from dorm-hosted servers to colocated data centers. (Wikipedia.org (en.wikipedia.org)) (ExpertBeacon.com (expertbeacon.com)) Redis development began in 2009 under Salvatore “antirez” Sanfilippo and therefore did not exist during Facebook’s 2004–2006 growth window. (Wikipedia.org (en.wikipedia.org)) Apache Kafka originated at LinkedIn and was open‑sourced in 2011, after Facebook’s early scale challenges. (Wikipedia.org (en.wikipedia.org)) Kubernetes’ initial public commits and announcements happened in mid‑2014, nearly a decade after Facebook’s first scaling efforts. (kubernetes.io (kubernetes.io)) Facebook’s approach was to iterate on simple, existing tools and then build internal solutions as needs crystallized: TAO (a distributed graph store) was described in a USENIX paper in 2013 as a replacement for cache‑as‑ide patterns. (usenix.org (usenix.org)) Meta later released HHVM as a JIT-based runtime (the HipHop Virtual Machine) around 2010 to optimize PHP performance and published it as open source. (engineering.fb.com (engineering.fb.com)) RocksDB was created at Facebook in April 2012 as an embeddable, high‑performance storage engine. (Wikipedia.org (en.wikipedia.org)) Academic and engineering papers from Meta quantify the scale that motivated these changes: Facebook’s memcached deployment was engineered to handle billions of requests per second and trillions of cached items in production at peak scale. (usenix.org (usenix.org)) The anecdote circulating on X was posted by Anton Martyniuk and is being amplified from his Anton DevTips channel, which promotes practical architecture guidance to a large developer audience. (x.com (x.com)) (antondevtips.com (antondevtips.com))