MUUTEX

🐄   LOW-LEVEL BACKEND  //  HIGH-LEVEL MOO   🐄

func main() { lock(); moo(); unlock(); }

[ acquire_lock() ]

// INIT

whoami

The Company Mascot

Muutex to niskopoziomowe studio backendowe, którego nazwa pochodzi od dwóch świętych rzeczy: muczenia krów i sync.Mutex. Nie jest to przypadek. To filozofia.

Specjalizujemy się w serwerach gier MMO, systemach rozproszonych i wszędzie tam, gdzie race condition oznacza koniec świata (albo przynajmniej koniec kampanii PvP).

Piszemy w Go dopóki kernel nie zapłacze. Debugujemy w C++. Nocami czytamy źródła Linuxa dla rozrywki. Nasze goroutines są poprawnie zsynchronizowane. Nasze krowy — nakarmione.

FIRMAMuutex
WŁAŚCICIELPatryk Kozak
NIP9542510653
REGON528673240
0 GOROUTINES SPAWNED TODAY
0 RACE CONDITIONS (EVER)
COWS APPRECIATED
42ns AVG LOCK LATENCY

// DEPENDENCIES

tech stack

🐹Go / Golang
🐘PHP
⚙️C++
🌐REST API
🔌Sockets
🖥️Single Server
🌍Multi Server
🎮MMO API
🔒sync.Mutex
🚦Semaphore
🐧Linux
🐘PostgreSQL
🤖Claude Code
🏠ClickHouse
📊Big Data
❄️Snowflake
👾ASM 6502
👾ASM x86
👾ASM 68000
MMX+SSE2
🎸Vacuum Tube Amps
🐄Cow

// TRIGGER WARNING

tabela nienawiści stackowej

🐘
PHP
⏱ stracone lata życia: 12
Symfony, Doctrine, 47 warstw abstrakcji żeby wyświetlić "Hello World". Brak cache bo "po co, przecież ORM zrobi query za ciebie" (5 sekund później). Framework, który spowalnia development bardziej niż brak frameworka.
Java
⏱ stracone lata życia: wytrzymałem 1.733 dnia
Osobisty wróg numer jeden. AbstractSingletonProxyFactoryBean. 8 GB RAM żeby odpalić IDE. Kolejne 8 GB żeby odpalić aplikację. Ktoś kiedyś napisał "Enterprise" i od tamtej pory świat nie doszedł do siebie.
⚙️
C++
⏱ stracone lata życia: 10
Fajny język. Ale średniowiecze już minęło. Zostawiamy do driverów, kernela i ludzi, którzy lubią debugować segfaulty o 3 w nocy. Byłem jednym z nich. Wyzdrowiałem.
🧬
OOP
⏱ stracone lata życia: 30
Sprawdza się nigdzie. Jako separator danych — może. Ale dziedziczenie klas między wiele gier? Nikt nigdy tego nie zrobił dobrze. Zawsze powstaje z tego potworek, którego nikt nie chce dotykać. Polimorfizm w teorii. Cierpienie w praktyce.
🧩
Microservices
⏱ stracone lata życia: 1 rok
Najdroższy sposób na skomplikowanie czegoś, co działało jako monolit. Rozproszone transakcje, eventual consistency, 47 repozytoriów, Kubernetes żeby to ogarnąć i zespół DevOpsów żeby ogarnąć Kubernetesa. A potem i tak latency rośnie, bo każdy request to 12 hopów po sieci. Ale przynajmniej mamy ładne diagramy w Confluence.
👾
x86
⏱ stracone lata życia: 3 miesiące
Jak takie coś mogło podbić świat? Motorola zrobiła to 68k razy lepiej. Rejestrów mniej niż palców u jednej ręki, segmentacja pamięci wymyślona przez szatana, a backward compatibility ciągnięta od 8086 jak kula u nogi. A mimo to wygrał. Dowód na to, że marketing > inżynieria.
🟨
JavaScript
⏱ stracone lata życia: 30 (i ciągle trwa)
Mniejszy wróg niż Java, ale wróg. typeof NaN === "number". "2" + 2 === "22". node_modules waży więcej niż cały system operacyjny. Ale żyć z tym trzeba, bo przeglądarka nie rozumie niczego innego.

// LIVE DEMO — nie, serio, to działa

semaphore visualizer

Semafor z capacity=4. Goroutines losowo go zajmują i zwalniają. To właśnie robimy dla relaksu w piątki.

semaphore_demo — live
sem value: 4 / 4
slots:
waiting: 0 goroutines


// /proc/patryk

about me

about_me.sh
$ cat /proc/patryk/status

ROLE: backend engineer, tata, biegacz
UPTIME: od lat — bez segfaultów w produkcji (prawie)

$ ps aux | grep life

🧒 kidsdwójka (lvl 3 i lvl 7). Najwyższy priorytet w schedulerze. Preemptują wszystko.
🏃 runningregularnie, najlepszy debugger do głowy.
Running in the fog Running by the river
🚲 cyclingrower do pracy (commute) + MTB hardtail w teren kiedy czas pozwoli. Mercedes ma celownik na masce — ja mam krowę na błotniku.
Cow hood ornament on bike MTB hardtail at Las Wolski rocks
🏔️ mountainsłażenie po górach, kiedy dzieci pozwolą, a nogi jeszcze działają po biegach.
💻 codingprogramuję odkąd pamiętam. W pracy i po pracy. Zawsze jakiś side project w tle. Nie umiem nie kodować.
Next generation coder Coding on a beanbag
🎸 guitarakustyczna, zbiera kurz, ale jeszcze żyje. Kiedyś grałem częściej.

$ _

// OPEN CHANNEL

contact

contact.go
$ cat contact.json

{
  "company": "Muutex",
  "owner": "Patryk Kozak",
  "nip": "9542510653",
  "location": "Poland 🇵🇱",
  "spec": "MMO Game API Servers",
  "note": "Muteksy nie mają numerów telefonów."
}

$ _