[ norboten ]
Ratings

Everyone is rated on the same nineteen topics

A rated attempt is scored like a match against the lab: pass inside the limit and you beat it; fail, or run over, and it beats you. Ratings are Glicko-2, so every number carries its own uncertainty — a profile says 1500 ± 350 until it has earned the right to be more precise.

A rating comes from rated labs and rated theory. Those are graded by the server against your account. An unrated attempt is still recorded — it shows on your profile with its score and its time. No rated lab has been published yet, so today the board is empty of real players; the sample accounts are marked. Why the catalogue is split.

Sample data. Nobody here is real. These 100 accounts are generated by seed/generate.py and replayed through the same rating code the live service runs, so the pages can be judged before anyone has signed up.

The board

Every learner, their overall rating and what they are best at.

What the attempts say
#LearnerRatingBest topics PassedAttempts
1 clara-curl 🇺🇸 1804 ± 35 Networking, Terraform, Logging and journald 86 94
2 bex-nice 🇫🇷 1798 ± 34 Networking, Terraform, Python 90 97
3 cassyank 🇺🇸 1803 ± 42 Python, Users and permissions, Boot and systemd 54 59
4 ivowget 🇩🇪 1800 ± 42 Linux basics, Python, Networking 47 51
5 nadialvm 🇳🇱 1775 ± 36 Bash, Python, Users and permissions 71 79
6 hash3 🇦🇺 1747 ± 34 Python, Users and permissions, Claude Code 78 93
7 clara-root 🇳🇴 1753 ± 36 Python, Storage and LVM, AI Agents 67 76
8 wren-bit 🇺🇸 1745 ± 34 Logging and journald, Bash, Users and permissions 96 120
9 jonasmount 🇺🇸 1788 ± 58 Users and permissions, Claude Code, Linux basics 28 28
10 nils-tty 🇩🇪 1784 ± 59 Python, Boot and systemd, Networking 17 19
11 lena-runs 🇫🇷 1726 ± 40 Claude Code, Bash, Terraform 45 52
12 lena-kernel 🇮🇪 1703 ± 30 Ollama, Boot and systemd, Storage and LVM 87 102
13 elin-ops 🇩🇪 1714 ± 45 Networking, Linux basics, Boot and systemd 38 43
14 curl97 🇺🇸 1681 ± 30 Ollama, Model Context Protocol, Claude Code 87 104
15 wren-lab 🇺🇸 1699 ± 40 Logging and journald, AI Services, Boot and systemd 49 57
16 sudo86 🇬🇧 1678 ± 32 AI Services, Firewall and SELinux, Terraform 79 95
17 wget49 🇺🇸 1705 ± 46 Python, AI Agents, Terraform 37 42
18 wrenquota 🇪🇸 1670 ± 31 Ansible, Boot and systemd, Containers 86 109
19 matzvim 🇬🇧 1681 ± 38 Logging and journald, Python, Ollama 55 64
20 matz-daemon 🇬🇧 1695 ± 45 Bash, Boot and systemd, Python 33 42
21 xenia-runs 🇺🇸 1683 ± 40 Ollama, Logging and journald, Users and permissions 44 52
22 bruno-tmux 🇦🇺 1675 ± 37 Bash, AI Agents, Firewall and SELinux 65 80
23 elin-lvm 🇩🇪 1658 ± 34 Containers, Storage and LVM, AI Services 62 82
24 shell34 🇵🇹 1717 ± 66 Claude Code, Bash, Linux basics 18 18
25 sudo50 🇮🇹 1641 ± 29 Firewall and SELinux, Terraform, Boot and systemd 93 126
26 antonpipe 🇫🇷 1731 ± 79 Linux basics, Networking, Firewall and SELinux 9 9
27 fsck44 🇩🇪 1643 ± 35 Networking, Firewall and SELinux, Bash 51 71
28 udev51 🇦🇺 1661 ± 44 Bash, Claude Code, Networking 38 45
29 anton-sudo 🇮🇪 1660 ± 44 Users and permissions, Boot and systemd, Bash 32 42
30 forge87 🇺🇸 1654 ± 42 Claude Code, Firewall and SELinux, Networking 45 52
31 bruno-patch 🇦🇺 1645 ± 39 AI Services, AI Agents, Logging and journald 47 59
32 ola-cron 🇺🇸 1634 ± 36 Users and permissions, Bash, Ansible 45 61
33 gus-zsh 🇯🇵 1659 ± 49 Model Context Protocol, Users and permissions, Ansible 30 36
34 nadia-ops 🇬🇧 1618 ± 29 Python, Model Context Protocol, Firewall and SELinux 78 106
35 pavel-grep 🇳🇱 1651 ± 47 Linux basics, Python, Bash 26 33
36 rafa-vim 🇯🇵 1650 ± 47 Bash, Model Context Protocol, Linux basics 33 39
37 jonas-swap 🇫🇷 1650 ± 48 Networking, Firewall and SELinux, Users and permissions 27 35
38 mount66 🇦🇺 1635 ± 40 Claude Code, AI Agents, Containers 45 55
39 xenialvm 🇺🇸 1666 ± 59 Python, Boot and systemd, Linux basics 15 17
40 kai-stack 🇨🇿 1612 ± 36 Firewall and SELinux, Logging and journald, Model Context Protocol 52 79
41 ivo-wget 🇪🇸 1604 ± 32 Model Context Protocol, Boot and systemd, Python 81 108
42 petra-daemon 🇳🇴 1597 ± 30 Boot and systemd, Kernel and performance, Storage and LVM 78 110
43 oscar-udev 🇩🇪 1604 ± 39 Python, Linux basics, Users and permissions 52 65
44 patch13 🇮🇪 1613 ± 47 Claude Code, Terraform, Boot and systemd 26 39
45 tomasquota 🇯🇵 1574 ± 31 AI Services, Networking, Firewall and SELinux 75 109
46 hana-zsh 🇨🇿 1566 ± 27 Kernel and performance, Firewall and SELinux, Model Context Protocol 89 133
47 udev8 🇦🇺 1575 ± 32 Storage and LVM, Ansible, Logging and journald 67 96
48 quinntux 🇯🇵 1567 ± 28 Terraform, Containers, Claude Code 84 128
49 jonastty 🇳🇴 1575 ± 35 Firewall and SELinux, Networking, AI Services 52 79
50 elin-umask 🇳🇿 1565 ± 30 Ollama, Bash, Claude Code 79 113
51 oscar-tux 🇵🇱 1575 ± 36 Python, Linux basics, Boot and systemd 59 76
52 socket38 🇮🇹 1620 ± 61 Users and permissions, Model Context Protocol, Logging and journald 16 19
53 elin-wget 🇺🇸 1545 ± 29 Ansible, Kernel and performance, Model Context Protocol 80 124
54 nils-hash 🇸🇪 1540 ± 26 AI Services, Ollama, Terraform 82 128
55 kolyacurl 🇺🇸 1603 ± 59 Linux basics, Bash, Ollama 15 17
56 udev15 🇳🇱 1554 ± 37 Model Context Protocol, Networking, Logging and journald 40 58
57 quinnswap 🇦🇺 1554 ± 38 AI Agents, Linux basics, Networking 44 61
58 xenia-fsck 🇦🇺 1551 ± 37 Python, Logging and journald, Users and permissions 56 88
59 mount32 🇷🇴 1507 ± 28 AI Services, Storage and LVM, Ollama 77 124
60 shell49 🇮🇹 1558 ± 55 Bash, Model Context Protocol, Boot and systemd 15 20
61 xeniasudo 🇳🇱 1513 ± 34 Storage and LVM, Containers, Terraform 46 76
62 kolya-cron 🇵🇱 1501 ± 31 AI Agents, Claude Code, AI Services 73 115
63 quinnroot 🇯🇵 1511 ± 40 Model Context Protocol, Networking, Firewall and SELinux 44 58
64 quota21 🇺🇸 1492 ± 34 Ansible, Linux basics, Users and permissions 47 73
65 patch15 🇸🇪 1471 ± 30 Ansible, Users and permissions, Bash 66 113
66 matz-swap 🇺🇸 1467 ± 30 Ansible, Storage and LVM, AI Agents 61 109
67 pipe31 🇸🇪 1478 ± 36 Bash, Firewall and SELinux, Python 40 73
68 rafa-runs 🇵🇱 1469 ± 32 Ansible, Terraform, Containers 63 96
69 pavel-hash 🇺🇸 1470 ± 40 Kernel and performance, Ansible, Terraform 31 51
70 mirastack 🇺🇸 1524 ± 67 Linux basics, Ansible, Model Context Protocol 8 12
71 quinnlvm 🇯🇵 1507 ± 60 Boot and systemd, Firewall and SELinux, Ansible 9 15
72 hanacore 🇵🇹 1484 ± 55 Boot and systemd, Linux basics, AI Agents 11 18
73 tomas-fsck 🇪🇸 1431 ± 30 Users and permissions, Storage and LVM, Bash 53 103
74 curl44 🇺🇸 1493 ± 63 Networking, Model Context Protocol, Bash 14 20
75 cass-pipe 🇯🇵 1434 ± 35 Kernel and performance, Storage and LVM, Ansible 34 72
76 esa-root 🇺🇸 1515 ± 79 Logging and journald, Users and permissions, Networking 4 7
77 kolya-root 🇷🇴 1402 ± 36 Kernel and performance, Bash, Ansible 29 70
78 halforge 🇮🇹 1387 ± 33 Logging and journald, Python, Kernel and performance 29 73
79 cass-curl 🇵🇹 1410 ± 46 AI Services, Terraform, Containers 17 33
80 miracron 🇺🇸 1388 ± 37 Logging and journald, Ansible, Containers 35 61
81 pavel-wget 🇳🇿 1377 ± 37 Kernel and performance, Firewall and SELinux, Linux basics 32 73
82 curl74 🇳🇴 1363 ± 31 Claude Code, Firewall and SELinux, Users and permissions 46 94
83 shell27 🇸🇪 1388 ± 45 Logging and journald, Containers, Networking 18 39
84 grep20 🇺🇸 1402 ± 53 Kernel and performance, Boot and systemd, Python 10 21
85 petra-forge 🇬🇧 1374 ± 45 Kernel and performance, Logging and journald, Terraform 27 51
86 loreroot 🇩🇪 1418 ± 67 Networking, Firewall and SELinux, Ansible 7 14
87 bruno-lvm 🇸🇪 1319 ± 32 Kernel and performance, Storage and LVM, Linux basics 34 99
88 lvm78 🇩🇪 1361 ± 56 Logging and journald, Claude Code, AI Agents 11 25
89 swap17 🇳🇴 1317 ± 35 Terraform, AI Agents, Claude Code 35 77
90 ola-shell 🇬🇧 1325 ± 41 Terraform, Storage and LVM, Model Context Protocol 17 46
91 cass-core 🇺🇸 1298 ± 29 Logging and journald, AI Services, Storage and LVM 41 110
92 udev67 🇺🇸 1349 ± 55 Kernel and performance, Ansible, Containers 10 19
93 yank69 🇺🇸 1372 ± 71 AI Services, Ollama, Networking 5 16
94 hana-nice 🇫🇷 1321 ± 47 Ollama, Storage and LVM, Kernel and performance 15 34
95 sanalvm 🇵🇱 1322 ± 50 Firewall and SELinux, Containers, Ansible 11 34
96 nice82 🇫🇷 1362 ± 71 Users and permissions, Logging and journald, Linux basics 4 13
97 byte58 🇪🇸 1258 ± 44 AI Agents, Boot and systemd, Python 6 34
98 hal-ops 🇺🇸 1233 ± 38 Firewall and SELinux, AI Services, Networking 21 65
99 socket53 🇯🇵 1207 ± 39 AI Agents, Storage and LVM, Claude Code 13 65
100 kai-swap 🇵🇱 1210 ± 45 Ansible, Bash, Linux basics 10 36

How the number moves

The lab is the opponent

Difficulty 1 to 5 plays at 1100, 1300, 1500, 1700 and 1900. Beating a difficulty-5 lab is worth what beating a 1900 is worth.

The clock counts

5, 10, 15, 20 or 30 minutes by difficulty — unless the lab sets its own, as the exam simulation does. Finishing late is a loss, however good the fix.

Practice is free

Untimed attempts are recorded and never rated. Retry a lab as often as you like; only the timed run says anything about you.