You pick the topics. They answer from memory.
Questions post in the channels you choose, on the topics you choose. Your engineers answer with one click, and the explanation follows right away.
Real questions, in the channel. One click to answer. The explanation follows.
Atomic RepsAPP9:00 AM
Rep of the Day
A team puts an internal API key inside a signed (not encrypted) JWT. Why is that unsafe?
🛡️ Auth · 🔥 Level 3
Sofia Reyes8:40 AM
rotating the JWT signing keys tonight, low-traffic window
Elin Holm8:45 AM
reminder we still have a CORS-but-no-CSRF gap on the write endpoints
Every squad answers its own stack.
One channel means one mix. Give each squad its own channel, tuned to the stack it works in. You set it once in the Hub.
Atomic RepsAPP9:00 AM
Rep of the Day · #squad-frontend
The button is clicked while an older request is still in flight. What does useOptimistic render as it resolves?
🔥 Level 4 · React · #squad-frontend’s scope: React, TypeScript, CSS
Posted in #squad-frontend. Corpus row, quoted as written.
Set in the Hub, once per channel. Change it whenever the squad changes.
Platform
- Git11 topicsT3
- Testing strategies12 topicsT3
- API design12 topicsT4
- Databases12 topicsT4
- Kubernetes8 topicsT4
- Observability8 topicsT4
- Caching6 topics–
- Message queues6 topics–
- Accessibility10 topics–
Reps go to the team, or to one person you pick. You set what gets practiced, never who gets watched.
Ask, and a report comes back to you.
/reps skills, whenever you like. Streak, accuracy, favourite topic, the domains you have touched this quarter.
Only visible to you
📊 Your Q1 1970 Skill Report
💪 Total Reps
148
🎯 Accuracy
82%
🔥 Best Streak
11 days
📚 Domains Practiced
7 of 12
💛 Favorite topic: React (31 reps)
⚙️ Backend▓▓▓▓▓▓▓▓▓░9
🎨 Frontend▓▓▓▓▓▓▓▓░░8
📊 Data▓▓▓▓▓▓▓░░░7
🚀 DevOps▓▓▓▓▓▓░░░░6
🧪 Testing▓▓▓▓▓▓░░░░6
🔒 Security▓▓▓▓░░░░░░4
A board with names on it, once three people are answering.
Ranked by correct, then by attempts, ten places. You appear as Player-4314 until /reps nickname puts your name up.
Only visible to you
🏆 Standings
1.Astrid B.· 142 correct · 🔥 9
2.Erik L.· 131 correct · 🔥 7
3.You· 121 correct · 🔥 6
4.Hannah W.· 98 correct · 🔥 4
5.Tyler B.· 87 correct · 🔥 2
Ranked by correct, then attempts · /reps nickname puts your name up
The Friday recap lists what the week was about.
A thread under Friday’s rep with the questions that came up.
Atomic RepsAPP4:00 PM
Friday recap · #squad-platform
Three reps this week. The one with the most divided answers:
CPU throttling on a container with a 500m limit. Usage shows 200m on average. How is this possible?
Looked right: “A reporting lag in metrics-server.” The explanation: CFS meters each 100ms window, not the average.
🚀 Kubernetes · 🔥 Level 3 · threaded under Friday’s rep
Each thing that arrives has its own setting, including off.
The recap weekly, monthly, quarterly or never. Setup nudges weekly or off. /reps mute for your own DMs.
Free on one channel. Team turns the six on.
It arrives where the work already is.
One record, everywhere you answer.
What someone misses in Slack comes back later: in Slack, in the browser, or inside the coding agent they already use. Each engineer has one record, the same one wherever they answer.
- 01
Slack posts from the topic plan
The channel gets the squad's mix, on weekdays, one post a day.
- 02
The coding agent asks about the code it just touched
After a task finishes, one question about that change.
- 03
The browser holds the record
Each engineer's own history and what is due. Theirs to export or delete.
Wherever you answer, one record
222 classroom studies point the same way. Across 48,478 students, groups that were quizzed outscored groups that reread.
Against explaining it to yourself, the difference is small. Answering outperforms passive review. It has not been shown to outperform every other method.
No one has run the trial on programming skill. These studies shaped our design. They do not measure Atomic Reps.
One channel is free. Team is priced by headcount.
Pick the size that fits your team: five sizes, starting at 10 engineers. Each step up costs less per engineer.
Per engineer, a year
- $15610 engineers
- $14425 engineers
- $13250 engineers
- $120100 engineers
- $108250 engineers
One channel is free for everyone in it, no card. Team starts at the 10-engineer size, 30 days free to start.
Every size and the full sheet, on the pricing pageEvery /reps command, and what each one returns.
Click a command and the window at the top of the page runs it.
An apprentice each, that levels with the answers.
A standard emoji apprentice under every engineer, fed by correct answers, grown through the ranks. /reps pet shows its mood and its next level.
- 01Junior Backend Engineer
- 02Backend Engineer
- 03Senior Backend Engineer
- 04Staff Backend Engineer
🦆 🦉 🐢 🐧 🐶 🦊 🐹 🐸 🐙 🦏 🐱 🦝
Slack shows you this screen. Here is what each line means.
Eight permissions. Slack’s wording on the left, and what each one means for your team on the right.
It cannot, and will not
- Read messages in any channel or DM.
- Open files, canvases or huddles.
- Post anywhere you did not pick.
- Message anyone who typed /reps mute.
- Train AI on your answers, or sell or share them.
What it needs, and why
- Channel names. So the picker has something to list.
- Who is in the workspace. So an answer counts toward the person who typed it.
- One email address at a time. When the installer claims the workspace, and the first time a member answers, so a Slack name becomes the right account.
- Permission to post, and to DM. The daily rep in the channel you picked. DMs only if you move delivery there, or for the apprentice.
Information Atomic Reps can view
View basic information about public channels in your workspace
channels:readChannel names and ids, so the picker has something to list. Never what is said in them.
View basic information about private channels that Atomic Reps has been added to
groups:readThe same list for private channels, and only the ones you invite the bot into.
View people in your workspace
users:readSo an answer counts toward the person who typed it and not a stranger.
View email addresses of people in your workspace
users:read.emailSlack grants this at install. We read nothing at install. We read one address at a time: when the installer claims the workspace, and the first time a member answers. We use the address to link a Slack name to the right account.
Actions Atomic Reps can take
Send messages as @atomicreps
chat:writePost the daily rep, then edit it at the end of the day to close it.
Send messages to channels @atomicreps isn't a member of
chat:write.publicSo you never have to /invite the bot before the rep can be posted in the channel you picked. The bot posts to the channels you choose and nowhere else.
Start direct messages with people
im:writeDirect messages, if you move delivery to DMs, plus the apprentice's updates. /reps mute ends them.
Add shortcuts and/or slash commands that people can use
commandsRegisters /reps, the command for practice, stats and help.
Details in the Privacy Policy, Security and the Data Processing Agreement. Coaching, not surveillance states what a member’s record is for. Export or delete yours from your account page. Cannot add apps to your workspace yourself? Send it to whoever can.
AtomicRepsYou already answered one
The rest is your channels: real questions on the topics you pick, an icebreaker when you want the standup to start with one, and a team that keeps answering.
Free. No card, no account.
Questions about the integration: support@atomicreps.com. We aim to answer within two business days. See also Support. Atomic Reps is not created by, affiliated with, or endorsed by Slack Technologies, LLC.
