# Matryoshka Code

Probably the funniest meetup I ever gave, its topic still pops up in
conversations, even six years later in 2025.

import { LinkCard } from '../src/own/LinkCard';

export const TalkCard = () => {
  return (
    <LinkCard href="https://matryoshka-code.vercel.app/">
      <img
        width={280}
        class="dark:opacity-90"
        alt="matryoshkas"
        src="https://images-na.ssl-images-amazon.com/images/I/5186qD8N%2BpL._SX466_.jpg"
      />
      <span>https://matryoshka-code.now.sh</span>
    </LinkCard>
  )
}

Slides: <TalkCard />

## pitch

I’m gonna rant about matryoshka code, DRY as dunes of Arrakis, and utmost unpleasant to work with. Have you heard about it? Are you guilty of writing it? I’m going to describe the problem and propose a few ideas of how to deal with it.

## tldr

<figure>

> instead of making chains, grow trees

<figcaption>
—yours truly, Wrocław, 2019
</figcaption>
</figure>

<figure>

> duplication is far cheaper than the wrong abstraction

<figcaption>

—[sandimetz](https://sandimetz.com/)

</figcaption>

</figure>

- [John Carmack on inlined code, according to Johnatan Blow](http://number-none.com/blow/john_carmack_on_inlined_code.html)
- [ch-athens on Matryoshka Code](http://betabug.ch/blogs/ch-athens/1352)
- [Kent C. Dodds on avoiding hasty abstractions](https://kentcdodds.com/blog/aha-programming)
