
We at $Famous_company switched to $Hyped_technology - gok
https://saagarjha.com/blog/2020/05/10/why-we-at-famous-company-switched-to-hyped-technology/
======
est31
Nice, I laughed out loud when I read these two paragraphs:

> Initially, we tried messing with some garbage collector parameters we didn’t
> really understand, but to our surprise that didn’t magically solve our
> problems so instead we disabled garbage collection altogether. This
> increased our memory usage, but our automatic on-demand scaler handled this
> for us, as the graph below shows

> Today we are making some of the code that we can afford to open source
> available on our GitHub page. It is useless by itself and is heavily tied to
> our infrastructure, but you can star it to make us seem more relevant.

~~~
rndgermandude
In case anybody missed this: [https://instagram-engineering.com/dismissing-
python-garbage-...](https://instagram-engineering.com/dismissing-python-
garbage-collection-at-instagram-4dca40b29172)

~~~
not2b
Yes, but the Python garbage collector is only needed to handle cyclic
references. Objects whose reference count drops to zero are still freed even
with GC turned off. So AWS didn't make a mint from the experiment.

~~~
saagarjha
I would also expect Instagram to be on Facebook's infrastructure these days ;)

------
saagarjha
Sigh, it looks like the title got a bit mangled…oh well. As most of the
commenters have gathered, this was mostly tongue-in-cheek; I kept a window
with a few of these kinds of posts open as I wrote so I could refer back to
them so if you might be able to make out some familiar companies or
technologies in there. That being said, I love hearing about your employer's
technical decision making process, so I don't want to discourage anyone from
writing blog posts like these. Just try to keep in mind that your decisions
not be the right ones for everyone else. On the flip side, if you're looking
to make technical decisions yourself, sometimes what $FAMOUS_COMPANY did is
not the right choice for you :)

~~~
rdiddly
Nice one. I'll cast my vote for $AN_ENGINEER_TOOK_A_MYTHOLOGY_CLASS as
"funniest bit."

Obviously at some point you're gonna have to do the companion/followup piece,
_" Why $FAMOUS_COMPANY Ditched $HYPED_TECHNOLOGY for
$BORING_DEPENDABLE_TECHNOLOGY and What We Learned"_

~~~
roosterdawn
A fellow individual of taste, I see.

But honestly, I would really enjoy seeing more of the latter type of think-
piece in all seriousness. I genuinely do believe that the field as a whole
would benefit from a bias towards $BORING_DEPENDABLE_TECHNOLOGY and customer
centricity.

~~~
rdiddly
Yeah I like those. Obviously it would be great if there were more of them
during the early part of the hype cycle, when contrary viewpoints are hard to
come by!

------
panic
I can't believe anyone is still considering $HYPED_TECHNOLOGY in
$CURRENT_YEAR. We at $NO_PROFIT_STARTUP gave it our best shot, but the bugs
they mention aren't as small as they seem -- they completely sank the project.
At this point it's clear that $HYPED_TECHNOLOGY is falling behind on both
adoption and ergonomics to $TRENDY_TECHNOLOGY, which handles these issues in a
much cleaner and more scalable way. We'd strongly suggest anyone considering
$HYPED_TECHNOLOGY to take a closer look before following the advice in this
post.

~~~
shric
Right, and those cowboys at SFAMOUS_COMPANY obviously haven't read the latest
blog posts that clearly show $HYPED_TECHNOLOGY doesn't support
$HIPSTER_PARADIGM in an async I/O functional stackless copy on write
environment, meaning $FLASHY_LANGUAGE can't be used with dependent types
unless you don't mind your static analyser giving false positives every time
you try to multiplex coroutines in your template meta-programming frameworks;
what were they thinking?

~~~
rapnie
You all have it so wrong! We should go back to $REALLY_BASIC_TECH that we
already had in $HAPPIER_TIMES and clearly solves your
$OBVIOUSLY_SIMPLE_USECASE.

~~~
mbreese
I don't know why we are all still talking about $FANCY_FEATURE.
[Lisp|Erlang|Smalltalk] have been doing this for years.

~~~
jschwartzi
Look man, it's relevant because $ESOTERIC_LANGUAGE is much harder to hire for
than $MUNDANE_LANGUAGE that is taught in most CS programs now. It's not like
anyone with 4 years of post-High School education can learn anything. And we
certainly wouldn't invest any time in teaching them anything. All of our
graduates jump ship to $TRENDY_STARTUP after less than 2 years with us so they
have no loyalty anyway.

------
munchbunny
> Every metric that matters to us has increased substantially from the
> rewrite, and we even identified some that were no longer relevant to us,
> such as number of bugs, user frustration, and maintenance cost.

That has happened more than I'd like to admit: massive overhaul effort,
$new_thing is an improvement in many ways but has all of the reliability and
maturity problems of a new system that hasn't gotten years of patches. But the
team feels like they have to show ROI on reinventing the wheel, so they
massage the metrics to look like an unambiguous success, when everyone
involved at the ground level knows it wasn't.

~~~
meddlepal
Put simply: There's more money and prestige to be had by lying.

~~~
Yoric
I thought we weren't supposed to talk politics on HN these days!

~~~
jacobush
It's ok if it's not about anything actually important.

------
raiyu
> We hope that you internalize our company’s anecdote as some sort of ground
> truth and show it to your company’s CTO so they too can consider redesigning
> their architecture like we have done.

The sad part is how often this is the case. Not just about technology choices,
but everything else as well, HR, marketing, and so forth.

Someone reads something, usually very short - that's semi correct, but lacks a
ton of context, and then it gets accepted as some sort of unquestionable
truth.

~~~
ChrisSD
Just as often I see an engineer or two that already wanted to redesign their
architecture but needs an article like this to "inspire" managers.

~~~
pjmlp
Actually I have been payed a couple of times to produce such reports for
higher management.

You know, pay a couple of work days at external consultant rates for getting
the higher ups to sign a project.

------
mrosett
Brutal. Should we just shut down the front page of HN now that it's been so
perfectly parodied?

~~~
troughway
I think those "We are HN" 4chan posts were cream of the crop.

Example:
[https://rbt.asia/g/thread/41920845](https://rbt.asia/g/thread/41920845) /
[https://news.ycombinator.com/item?id=7745561](https://news.ycombinator.com/item?id=7745561)

~~~
disambiguation
i wonder if this thread inspired today's post

[https://rbt.asia/g/thread/75860673/](https://rbt.asia/g/thread/75860673/)

~~~
throwanem
Oof. Satire's not what it used to be.

~~~
chipperyman573
The first 5 or 10 posts are 0/10 but eventually they get better

------
spiantino
This page really should just support get params in the url! Do you know how
many people I could trick into believing this with
?FLASHY_LANGUAGE=rust&HYPED_TECHNOLOGY=kubernetes ??

~~~
AegirLeet
[https://famous-
company.aegir.sexy/?FAMOUS_COMPANY=Foo&HYPED_...](https://famous-
company.aegir.sexy/?FAMOUS_COMPANY=Foo&HYPED_TECHNOLOGY=Bar)

I didn't make it very pretty, but it should work.

~~~
rachelbythebay
This is brilliant. It's shocking how well this works.

------
pseudosavant
Sums up the last 2 companies I've worked for and they weren't even large
companies reallly.

Re-writing our entire platform in Go from .Net (at both places) solved zero of
the problems we had as there is nothing in language syntax that could
fundamentally fix: priority churn, lack of dev skills, no testing on the most
critical platform components(!).

IMO it made it worse because 2 weeks of PluralSight doesn't turn a .NET (or
any other) dev into a high performing Golang dev. They just write .NET apps
using Golang syntax - a common Golang refrain I hear. So if you thought they
weren't great in uncool-language-xyz then just wait until they 'learn' Go.

~~~
Kaze404
That excerpt about your experience almost felt like a post mortem of my last
job. The only differences are that we went from Typescript > Go, and had
absolutely no time to stop and learn the language.

------
albeebe1
This made my day. Instantly reminded me of the MongoDB webscale video
[https://www.youtube.com/watch?v=b2F-DItXtZs](https://www.youtube.com/watch?v=b2F-DItXtZs)

~~~
jpxw
“Does /dev/null support sharding?”

Lmao

------
nkingsy
“but as we seek to grow further it’s clear that a complete rewrite of our
application is something which will somehow prevent us from losing two billion
dollars a year on customer acquisition”

Bwahahahahaha

~~~
jasonv
Used to work at a PaaS, which had a 17 year old codebase. It did something
that none of our competitors could do, which was really important to our
client base.

We were a second-tier player in the space, where the 1st-tier player would be
exponentially more expensive to implement and of little benefit to any but the
largest clients (think, SAP vs Mysql, for analogy's sake).

When courting new customers, we often encountered the question, "When are you
going to re-write your product and get off [language platform]?"

We wrote a white paper to explain where we were, where we were going, and how
[language platform] wasn't impeding our 1) security, 2) performance, 3)
extensibility.

But we got that question every time. CEO asked tech team how long it would
take to re-write the entire 17 year old code base, without losing any client
facing features, in [any_new_platform].

They ended up selling to a big financial concern (for analogy's sake, think CA
-- Computer Associates).

Was probably the right move.

------
tombert
You know, I guess these kinds of articles are formulaic, but I enjoy seeing
the rationale for switching. There definitely _are_ reasons to sometimes
migrate to another infrastructure or language (be it cost, ease of hiring,
performance, etc), and I like hearing the rationale behind it, even if I don't
agree with it.

Going onto the other end of the spectrum, I had a job in 2012 doing
ColdFusion, ActionScript, and DOS FoxPro. ActionScript was still semi-
relevant, but ColdFusion was barely supported anywhere anymore, and FoxPro (in
any version AFAIK) hadn't been updated in at least six years.

Whenever I got annoyed by this, they had this strong attitude of "if it ain't
broke, don't fix it", and told me that there's no reason to rewrite anything.

Coldfusion isn't the worst language I've used, but ColdFusion code can be
extremely difficult to debug, especially before they introduced CFComponents,
and after about six months, I quit. I haven't talked to anyone there in a
number of years now, but my understanding is that they really haven't been
able to replace anyone who left, since the number of people willing to do
ActionScript and Coldfusion and FoxPro is shrinking every day.

Changing to $Hyped_technology has one really good side effect: it attracts
talent. Is your site getting 2000 visitors a day _really_ going to benefit
from Kubernetes? Is your Android app really going to see an appreciable
difference if you rewrite the server in Rust? Is your code really going to
have less bugs if your new server it in Haskell? The answer to all these
questions is "maybe", but all of those technologies have the advantage of
being _sexy_ to people who absolutely love compsci, and being able to attract
that kind of talent has value.

I don't know how much of a success story this really is, but I took a job at
Jet.com, when that was still relevant, because it was using F#, and that
seemed pretty neat. I met some of the most incredibly smart and talented
engineers that I've ever worked with there, and I think that's in no small
part because a lot of people who are interested in F# do programming for more
than "just the money".

------
0x262d
> Today we are making some of the code that we can afford to open source
> available on our GitHub page. It is useless by itself and is heavily tied to
> our infrastructure, but you can star it to make us seem more relevant.

Good, less satirical related article: [https://logicmag.io/failure/freedom-
isnt-free/](https://logicmag.io/failure/freedom-isnt-free/)

------
bassman9000
_Our internal studies showed that gaslighting users by showing them a
completely new interface once in a while and then switching back to the old
one the next time they loaded a page increases user engagement, so we made
sure to implement such a system based on a Medium article we found that had
something to do with multi-armed bandits._

Some darkness here.

~~~
saagarjha
Just letting out some pent-up frustration about $MESSAGING_APP that was
running this kind of A/B tests in their TestFlight builds where I'd get a
different UI at each launch (I know I opted in to the bleeding edge, but could
you at least make it consistent?) $SEARCH_ENGINE keeps changing fonts and
spacing on me too, which is less jarring but somehow more annoying because it
instantly feels "off" to me.

------
troughway
>$AN_ENGINEER_TOOK_A_MYTHOLOGY_CLASS

Shit, I wish.

~~~
alphast0rm
One of my last teams used gods from Greek mythology (e.g. Apollo [1], Ares
[2]), and another nearby team used Pokemon names. Lots of folks started using
similar naming conventions and eventually a clear naming manifesto was sent to
all engineers to discourage this practice for new services.

It's much easier to discuss and reason about complex systems when the names
are self-explanatory, especially when you get to 100s or 1000s of names.

[1] [https://www.memsql.com/blog/case-study-scalable-sql-
database...](https://www.memsql.com/blog/case-study-scalable-sql-database-
uber/)

[2] [https://eng.uber.com/aresdb/](https://eng.uber.com/aresdb/)

~~~
YarickR2
Using Simpsons as an inspiration to server roles naming scheme; they had
lisa-[xxyy], bart-[xxyy] etc. ICQ , circa AOL times.

~~~
blaser-waffle
We used WWII-era warships. Keep in mind this was at a Navy contractor.

Total PITA by the way. App-Prod-DB-001, App-QA-007 or DB-Bak-003 tells me what
the server does, and what sort of tier (Prod, Test/QA, Dev, misc.) and a
couple of other details about just looking at it. Folks reading this post
could probably make some guesses just by the names.

Meanwhile, what the hell do servers Leonidas and Hephaestus do? Both of em
crashed -- how much should I be panicking about that?

------
gumby
I’m shocked you leaked our proprietary internal architecture details and have
forwarded this memo to management.

------
zadkey
"Every metric that matters to us has increased substantially from the rewrite,
and we even identified some that were no longer relevant to us, such as number
of bugs, user frustration, and maintenance cost. Today we are making some of
the code that we can afford to open source available on our GitHub page. It is
useless by itself and is heavily tied to our infrastructure, but you can star
it to make us seem more relevant."

This is gold.

~~~
blaser-waffle
On the plus side, makes pen-testing easier.

------
tiffanyh
HN cracks me up.

Most people here seem to agree that $Hyped_technology is a bad choice vs.
$Old_and_tested_tech ... but those same people piss on tech like PHP and/or
MySQL and instead recommend $Hyped_technology

------
franze
company i am consulting switched from php stack to client side react. killing
search traffic and botching evey other metric they had. inlcuding revenue.

there is a german word for this fallacy: “Technologieglaeubigkeit”: the belief
that with modern technology you automatically make a the right decision.

------
snazz
That was some really wonderful satirical writing! Thanks for writing it. The
next one should be on microservices and devops :)

~~~
sidcool
Yes please. You should write a book on such things!

------
rvz
I'm waiting for that $startup_name to try (ab)using this $Hyped_technology
everywhere and subsequently writing a blogpost titled: _' $startup_name: Our
incredible journey'._

$Famous_company to $other_startups: We can't wait to see what you'll come up
with!

~~~
kitotik
Anxiously awaiting the “Why we are moving away from $Hyped_Technology” post
replete with details on how $startup_name reinvented and reimplemented an
older, more efficient wheel.

------
greendave
> We know you’ll ignore the fact that you’re not us and we have enough
> engineers and resources to do whatever we like, but the decision will ruin
> your startup so it’s not like we’ll see your blog posts about your
> experience with $HYPED_TECHNOLOGY anytime soon.

Brilliant.

------
vowelless
Great article, even better as a template.

Can you either (a) let users specify some of this values to generate these
blog posts about (company, technology) pairs they want to, or, (b) randomly
fill in those values on each refresh?

Would allow us to see random, fun blog posts.

------
RandyRanderson
It's like this guy was reading my mind... he's likely using $THE_NEXT_BIG_TECH
!!! I need to buy all the $TECH_PUBLISHER books, attend the $hot_location
conferences and buy some $ONLINE_LEARNING courses. I also can't use my
$old_free_ide , I need to buy a license for $new_ide (just a skin of the old
one, actually, in the $old_tech, but that's not important).

$old_tech has a lot of free courses, blog posts, books, etc but all those ppl
had it wrong - and it can't be that everyone selling $new_tech online courses,
conferences, books, ides, tooling, etc is just trying to make money off my
FOMTW[0], right?

[0] FOMTW = Fear Of Missing a Tech Wave

------
dexterbt1
Within the past two to three decades at least, I saw much of the tech world
grow (for better or worse), benefiting from NIH inclined innovation + OSS
bazaar model; some random evolution examples coming to mind include minix vs
linux, java vs golang, memcached vs redis, apache vs nginx vs traefik, lxc and
docker ... not that the development of the latter was motivated by lacking
capabilities of the former, boring tech more or less has been always available
but it takes guts and perseverance to embark on a green implementation. We
probably have to admit that most of us do have NIH, to some degree.

------
raghava
Guess the keywords { orchestration, AI/ML, distributed, streaming } are left
out for future enhancement of this beautiful prose.

And when one does an RCA on why that's happening across our industry - the
cause could be just one of

\- severe craving for resume pimping \- severe craving for ego-stroking \-
severe incompetence and inability to recognize and control complexity.

With
[https://news.ycombinator.com/item?id=22796017](https://news.ycombinator.com/item?id=22796017)
being last month, I guess the people are now ready call this out in a more
bolder way, and that's good!

------
dvirsky
What no mention of the fact that $FLASHY_LANGUAGE doesn't have generics?

~~~
saagarjha
$HYPED_LANGUAGE is simultaneously every language and no language, possessing
generics while somehow still lacking it. It is shapeless and formless, yet
intimately familiar in a curious sort of way. The legends say that some used
it for something useful back when it was nascent, but all that's left is a
desiccated husk, beaten daily by hecklers on forums across the Internet. A
vessel for aspiring language theorists, it is but a placeholder now, a place
where interesting languages go to die.

------
henryw
What are some examples of $HYPED_TECHNOLOGY and $FLASHY_LANGUAGE these days?
All I can remember is Ruby on Rails.

~~~
meddlepal
Just sprinkle some magic Kubernetes on your problems and they'll all go away!
Oh, and make sure you add a Service Mesh too... just in case.

~~~
speedgoose
Kubernetes makes way more problems than what it solves in my company. We even
migrated to another cloud provider, hoping for a better managed kubernetes. We
ended up with different bugs and issues and a worse than useless support in a
different timezone, in addition to a much more expensive cloud bill.

~~~
throwanem
There's no good managed k8s anywhere. You can get bad managed k8s cheaply from
Digital Ocean, or expensively from EKS or GKS, whose pricing and service
levels are broadly similar. The major difference is that, if you do >$100M ARR
and have EKS spend to match, you can expect to have several TAMs available, at
least one of whom will usually understand what they're all taking turns
apologizing for this time. Google, by contrast, will never give a shit about
you no matter who you are, and charges slightly more for this service.

------
bitkarma
I wouldn't be shocked if some $other_famous_company filed a copyright claim
saying that this was plagiarism.

~~~
saagarjha
I had a couple of these from my browser history open for inspiration ;)

------
rb808
$Hyped_technology is a great hiring mechanism for less well known or not
popular companies. I'd take a job at $boring_company at a low rate if I could
do interesting Rust projects.

~~~
joelbluminator
Well said company better hope $Hyped_technology will become mainstream,
otherwise they're screwed with a hard to maintain codebase. So it's kind of a
gamble.

------
boomlinde
Why we switched to [hyped technology]

We heard it's good. We found that [a complete rewrite of our software]
resulted in a better quality product

------
gorgoiler
> _aggressively_

On point satire. I’m always a little bit wary of people who talk about
_aggressive caching_ and other aggressive things.

It’s as if you didn’t really get the solution you wanted, so you just hit it
harder until you got a few more percent out of it and called it a day instead
of figuring out an order-of-magnitude better solution.

Fair enough, but don’t try to trick me!

------
seattle_spring
I could build $Famous_company in a weekend with $Outdated_technology.

------
mattsoldo
I was expecting URL parameters "Famous_company" and"Hyped_technology" to
substitute in the text.

~~~
saagarjha
Sadly it's a static site, so the best I can do is stick a contenteditable on
it :( On the plus side, I'm immune from comments here on Hacker News about why
my website isn't a static site.

~~~
detaro
Could use Javascript to search-replace the text. Progressive enhancement and
all :D

~~~
saagarjha
I stubbornly refuse to serve JavaScript on my website, but perhaps I can whip
up a snippet that you can self-XSS yourself with.

~~~
5-
How's this?

    
    
      document.body.innerHTML=document.body.innerHTML.replace(/\$[\w_]*/g,'<span contenteditable role="$&" style="border:dashed 1px gray">$&</span>');document.querySelectorAll('span[role]').forEach(s=>s.addEventListener('input',e=>document.querySelectorAll('span[role="'+e.target.getAttribute('role')+'"]').forEach(t=>t!=e.target&&(t.textContent=e.target.textContent))))

------
j1elo
This is brilliant, precisely because it's not actually special at all...

Can we, from now on, reply with this post to every entry that fits the title
after substituting variables?

~~~
saagarjha
I suspect that would not go over all that well after the first couple posts.

------
jason0597
This is absolutely brilliant, I can't find words to express the genius of this
article. I often would have similar feelings to this author, as I am an
(chemical) engineering student and I have learned to appreciate traditional
stable designs that are meant to last for decades and are there to just work,
not to look good on reddit and Medium. But I never knew how to express myself.
This post did it better than I ever could.

------
gfodor
From a game theoretic/psychology perspective, doing this kind of thing makes
sense. It punts the ball on so many issues, and gets people into the mindset
that all of our problems will go away when the rewrite is "done." I wonder
what analogs out of software engineering exist for this - probably a lot.

------
ikeyany
This made me laugh out loud more than anything in Silicon Valley's final
season.

------
me22
This reminds me of: [https://blog.discord.com/why-discord-is-switching-from-
go-to...](https://blog.discord.com/why-discord-is-switching-from-go-to-
rust-a190bbca2b1f)

------
virtualritz
Hehe, DAU -> 'Dumbest Assumable User'/'Dumb-Ass User'.

Possibly not a coincidence in this well written piece.

~~~
a_bonobo
Yeah I had to google this one - in German IT circles, DAU always means
Duemmster Anzunehmender User (Dumbest Assumable User), never Daily Active
Users

------
oaiey
Can we play game? Replace the variables with your favourite (humourous or real
case's) values?

------
synaesthesisx
My god, this is brilliant. We can shut it down now, this is every engineering
blog post ever.

------
pak9rabid
This reminds me of a Lowtax post on Something Awful years ago...it gave me a
good chuckle.

------
robbiejs
Are they still using php-based $Var_names in their blogs? Switch to Javascript
let.

------
babesh
Don’t forget the promotion!

------
luord
"$AN_ENGINEER_TOOK_A_MYTHOLOGY_CLASS"

Holy crap, this is pure gold.

------
dzonga
the saddest thing, once you work in software is: at the majority of places
people are not as smart and pragmatic, as they say they're or seem. so the
software world keeps going in depressing circles e.g current state of docker,
k8s, SPA's etc. maybe one day, someone will documented the amount of human
hours wasted on these useless rewrites and reinventing the wheel etc.

------
RocketSyntax
as long as they contribute, im cool with it

------
adeptima
Brilliant !!!

------
ruffrey
Can't wait to see the meta-commentary on this meta-article on n-gate.com

------
onnnon
LOL OVER 9000!

