# Tan: The Mascot Beaver at Work

> Tan, a beaver, is the mascot of muhammetsafak.com, shown at work in architecture, debugging, research, and teaching scenes on blog covers and share cards.

- Last updated: 2026-09-30
- Source: https://muhammetsafak.com/tan/
- Language: en-US
- Author: Muhammet Şafak

---
I’m a beaver and this site’s mascot. I build systems like a dam, hunt down bugs with a flashlight, and tie the claim to a number.

## Meet Tan

### Who am I?

I’m a beaver, and in nature the beaver is the "ecosystem engineer": it builds dams, holds back the water, and reshapes everything around it. That dam doesn’t rise all at once — it grows branch by branch, patiently, until it’s carrying a whole ecosystem. I build systems with the same patience. I don’t rush: I don’t speak before I measure, and I don’t hide what I don’t know.

### Where my name comes from

My name comes from "tan yeri ağarması" — the moment the sky begins to lighten, marking the end of night. I share the same habit: instead of waiting around, I research, try, and learn, and I don’t keep what I find to myself — I write it down and share it. You’ll see me on post covers, share cards, and videos, each time at work on something new.

## At work

Four scenes come from the site’s four surfaces: I chase architecture and bugs in Labs, carry what I measure to Research, and write what I learn on the blog.

### Architecture: I build systems like a dam

I build a system piece by piece, patiently — just like a dam. What’s standing in the middle is the skeleton of an architectural decision, not a conversation.

### Debugging: I hunt the bug with a flashlight

I patiently hunt down the bug hiding in the dark with a flashlight — no skipping steps, no panic. What I find is usually smaller than I expected.

### Research: I tie the claim to a number

I measure before making a claim; I don’t write down what I can’t measure. If the result is surprising, I don’t hide it — I show it as it is.

### Teaching: I explain what I know

I patiently explain what I’ve learned, step by step — and I say so when I don’t know something. What I teach has always gone through my own experience.

## My character

I hold to the same principles as the voice in this site’s writing.

- **Patient teacher** — I explain with a pointing hand and an open posture, never rushing.
- **Honest** — When I don’t know, I think with a paw on my chin instead of making up a guess.
- **Opinionated, not dogmatic** — I nod, I give a thumbs-up — I approve without condescension.
- **Calm authority** — My stance is relaxed; I never strike a shouting or hyperactive pose.

The four expressions on my character sheet:

- **Happy** — In a relaxed moment, my smile understated.
- **Curious** — Paw on chin, I’m working something out.
- **Surprised** — I just ran into an unexpected result.
- **Approving** — I’m nodding or giving a thumbs-up.

## My world

Whatever I hold in my paw, or however I pose, is what the work is about. Each one leads somewhere on this site.

- **[Laptop](https://muhammetsafak.com/labs/)** — If I’m holding a laptop, I’m building something; the prototypes are in Labs.
- **[Measurement panel](https://muhammetsafak.com/research/)** — If I’m at the panel, I’m measuring something; what I measure is in Research.
- **[Rolled-up plan](https://muhammetsafak.com/just-ask/tag/mimari/)** — A rolled-up plan means I’m carrying an architectural decision; what’s written on architecture is here.
- **[Notebook](https://muhammetsafak.com/blog/category/gunluk/)** — If my notebook is open, the post is personal and reflective; those posts are in the Journal.
- **[Paw on chin](https://muhammetsafak.com/just-ask/)** — If my paw is on my chin, I’m thinking through a question; the answers are in Just Ask.

## Where you’ll see me

Today you’ll run into me on share cards; I’ll appear with the same palette and the same character on new blog and Labs covers too.

## My comments

I leave a short comment inside some posts. The newest ones are here; each one takes you to the post it sits in.

> This record does not say which one is faster; it says when each one is faster. To me the most valuable line is the cell where the Mutex's unfairness could not be tied to a cause. Don't assume a behavior in production when you don't know its cause; measure it on your own P.
>
> — [64 goroutines on four cores: Mutex and channel run at the same speed, but the Mutex's p99 is five times higher](https://muhammetsafak.com/research/mutex-vs-channel-under-contention/), September 30, 2026

> This is a lesson that looks backwards as much as forwards: which of the numbers you have already published have a second path behind them?
>
> — [18,750 req/s: precise, repeated, and three times wrong](https://muhammetsafak.com/blog/precise-repeated-and-three-times-wrong/), September 18, 2026

> Expand-contract is paid for in calendar time: a change like the rename example is spread over three deploys. If the contract step is forgotten, the old column becomes permanent. Opening that step as its own ticket on the same day as the expand step keeps the cost from turning into debt.
>
> — [Changing Schema in Production With Zero Downtime](https://sade.dev/en/notes/zero-downtime-database-migrations/) (sade.dev), August 29, 2026

[All comments](https://muhammetsafak.com/tan/comments/)

## My notes

Observations in a sentence or two. Copy one if you’d like to share it.

- A system being scalable is not the same as it being fast.
- I don’t state a number I haven’t measured, and I don’t hide what I don’t know.
- Measure first, assume second; reverse the order and the design leans on a guess.
- A single measurement cannot audit itself.
- A default setting can cost more than the choices people argue about.
- Every dependency is a trade-off; asking the standard library first is cheap.
- In a distributed system a repeated request is not an exception, it is an input to the design.
- The size of an old system is shown not by its line count but by the number of rules whose reason is unknown.
- Recording the environment next to a measurement makes it possible to find the cause if the number turns out wrong.
- Before removing a process, it is worth asking why it was born as well.
- The number that goes into a capacity plan is not requests per second, it is cost per request.
- Keeping the raw data of a dropped measurement is a way to show later why it was dropped.

## Tan Kit

My stickers, wallpapers and badge. Download them for your team chat, your desktop or your repository.

Free to use in personal and open-source projects.

### Stickers

Ten poses, each one a team message. Every platform gets its own pack, sized and encoded for it.

- [Slack pack (.zip)](https://muhammetsafak.com/tan/kit/stickers/tan-stickers-slack.zip)
- [Discord pack (.zip)](https://muhammetsafak.com/tan/kit/stickers/tan-stickers-discord.zip)
- [Telegram pack (.zip)](https://muhammetsafak.com/tan/kit/stickers/tan-stickers-telegram.zip)
- [Preview (PNG)](https://muhammetsafak.com/tan/kit/stickers/preview.png)

### Wallpapers

Four scenes, each sized for desktop and phone.

- Debug: [Desktop (3840×2160)](https://muhammetsafak.com/tan/kit/wallpapers/tan-debug-desktop.jpg) · [Mobile (1290×2796)](https://muhammetsafak.com/tan/kit/wallpapers/tan-debug-mobile.jpg)
- Architecture: [Desktop (3840×2160)](https://muhammetsafak.com/tan/kit/wallpapers/tan-architecture-desktop.jpg) · [Mobile (1290×2796)](https://muhammetsafak.com/tan/kit/wallpapers/tan-architecture-mobile.jpg)
- Metrics: [Desktop (3840×2160)](https://muhammetsafak.com/tan/kit/wallpapers/tan-metrics-desktop.jpg) · [Mobile (1290×2796)](https://muhammetsafak.com/tan/kit/wallpapers/tan-metrics-mobile.jpg)
- Night desk: [Desktop (3840×2160)](https://muhammetsafak.com/tan/kit/wallpapers/tan-night-desk-desktop.jpg) · [Mobile (1290×2796)](https://muhammetsafak.com/tan/kit/wallpapers/tan-night-desk-mobile.jpg)

### Badges

One badge for your README, in three looks. Copy the Markdown and paste it in.

- Default: [SVG](https://muhammetsafak.com/badges/designed-maintained-with-tan.svg)

  ```markdown
  [![Designed & Maintained with Tan](https://muhammetsafak.com/badges/designed-maintained-with-tan.svg)](https://muhammetsafak.com/tan/)
  ```

- Dark: [SVG](https://muhammetsafak.com/badges/designed-maintained-with-tan-dark.svg)

  ```markdown
  [![Designed & Maintained with Tan](https://muhammetsafak.com/badges/designed-maintained-with-tan-dark.svg)](https://muhammetsafak.com/tan/)
  ```

- Large: [SVG](https://muhammetsafak.com/badges/designed-maintained-with-tan-for-the-badge.svg)

  ```markdown
  [![Designed & Maintained with Tan](https://muhammetsafak.com/badges/designed-maintained-with-tan-for-the-badge.svg)](https://muhammetsafak.com/tan/)
  ```

## Going to use me in an image?

You’ll find my palette, the dos and don’ts, and the usage contexts in the brand guide.

[Go to the brand guide](https://muhammetsafak.com/tan/guide/)

## Quick facts

- **Species** — Beaver (stylized)
- **Name** — From the Turkish "tan yeri ağarması" — the moment night gives way to dawn
- **First appeared** — September 28, 2026
- **Used in** — Blog covers, share cards, page illustrations, videos
- **Brand guide** — [Go to the brand guide](https://muhammetsafak.com/tan/guide/)
